package com.biz.primus.ms.member.dao.po;

import com.biz.primus.model.member.enums.SrcTypes;
import com.biz.primus.ms.base.jpa.po.BaseEntityPKIncrement;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Column;
import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.Table;

/**
 * 会员标签类型
 *
 * @author jun.liu
 * @date 2017年10月22日
 * @reviewer
 * @see
 */
@Entity
@Table(name = "member_label_type")
@Data
@EqualsAndHashCode(callSuper = true)
public class MemberLabelType extends BaseEntityPKIncrement
{

    /**
     * 标签类型名称
     */
    @Column(name = "name", length = 32, nullable = false, unique = true)
    private String name;

    /**
     * 标签类型属性 （自动标签和手动标签 true 代表自动标签 false代表手动标签）
     */
    @Column
    private Boolean isAuto = false;

    /**
     * 引用MemberLabelType对象
     *  父id  如果当前是顶层标签类型 则为null 存在值则证明不是顶级标签类型
     */
    @Column
    private Long parentId;

    /**
     * 备注说明
     */
    @Column(name = "label_type_desc", length = 100)
    private String labelTypeDesc;

    /**
     * 当标签类型来源类型SrcTypes不等于LOCAL的时候 记录其来源srcId 用以反转查询
     */
    @Column
    private Long srcId;

    /**
     * 当标签属性是自动的时候 srcId记录来源id
     */
    @Convert(converter = SrcTypes.Converter.class)
    @Column
    private SrcTypes srcType;

    /**
     * 当标签属性是自动的时候 记录新建此标签类型的首次订单id
     */
    @Column
    private Long firstOrderId;

}
